package utils

import (
	"fmt"
	"math/rand"
	"time"
)

func getTimeTick64() int64 {
	return time.Now().UnixNano() / 1e6
}

func getTimeTick32() int32 {
	return int32(time.Now().Unix())
}

func getFormatTime(time time.Time) string {
	return time.Format("20060102")
}

// GenerateCode32 基础做法 日期20191025时间戳1571987125435+3位随机数
func GenerateCode32() string {
	date := getFormatTime(time.Now())
	r := rand.Intn(1000)
	code := fmt.Sprintf("%s%d%03d", date, getTimeTick32(), r)
	return code
}

// GenerateCode64 基础做法 日期20191025时间戳1571987125435+3位随机数
func GenerateCode64() string {
	date := getFormatTime(time.Now())
	r := rand.Intn(1000)
	code := fmt.Sprintf("%s%d%03d", date, getTimeTick64(), r)
	return code
}
